package com.ruoyi.lvlian.mapper;

import java.util.List;

import com.ruoyi.lvlian.domain.WarehouseInfo;
import com.ruoyi.lvlian.dto.WarehouseInfoDto;
import com.ruoyi.lvlian.vo.WarehouseInfoVo;
import org.apache.ibatis.annotations.Param;

/**
 * 入库单Mapper接口
 *
 * @author liyuxi
 * @date 2024-07-19
 */
public interface WarehouseInfoMapper {
    /**
     * 查询入库单
     *
     * @param id 入库单主键
     * @return 入库单
     */
    public WarehouseInfoVo selectWarehouseInfoById(String id);

    /**
     * 查询入库单列表
     *
     * @param inWarehouseInfo 入库单
     * @return 入库单集合
     */
    public List<WarehouseInfoVo> selectWarehouseInfoList(WarehouseInfoDto inWarehouseInfo);

    /**
     * 新增入库单
     *
     * @param inWarehouseInfo 入库单
     * @return 结果
     */
    public int insertWarehouseInfo(WarehouseInfo inWarehouseInfo);

    /**
     * 修改入库单
     *
     * @param inWarehouseInfo 入库单
     * @return 结果
     */
    public int updateWarehouseInfo(WarehouseInfo inWarehouseInfo);

    /**
     * 删除入库单
     *
     * @param id 入库单主键
     * @return 结果
     */
    public int deleteWarehouseInfoById(String id);

    /**
     * 批量删除入库单
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWarehouseInfoByIds(String[] ids);

    List<WarehouseInfoVo> queryInWarehouseInfoListByInvoiceNum(WarehouseInfoDto inWarehouseInfo);

    int batchSave(@Param("dtoList") List<WarehouseInfo> dtoList);

    double queryInvoiceInfoWarehouseInfoRef(@Param("warehouseNum") String warehouseNum, @Param("buyerName") String buyerName, @Param("sellerName") String sellerName, @Param("plateNo") String plateNo);

    public String getFileImageId(@Param("id") String id ,@Param("colName") String colName);

    List<WarehouseInfoVo> queryInWarehouseInfoListByOrderNum(WarehouseInfoDto inWarehouseInfo);

    WarehouseInfoVo getInfoByOther(@Param("category") String category,@Param("warehouseNum")  String warehouseNum,@Param("plateNo")  String plateNo);

    void processWarehouseRefInImages( );

    void processWarehouseRefOutImages();

/*    int flushSellerSettlementStatus();
    int flushBuyerSettlementStatus();*/


    List<String>  queryWarehouseNum();

    int  updateWarehouseInfoImg(@Param("id")String id, @Param("colName") String colName);


}

